﻿using System.Threading.Tasks;

namespace TabbedTemplate.Services
{
    /// <summary>
    /// 打卡导航服务接口。
    /// </summary>
    public interface IPunchNavigationService
    {
        /// <summary>
        /// 导航到页面。
        /// </summary>
        /// <param name="pageKey">页面键。</param>
        /// <returns></returns>
        Task NavigationToAsync(string pageKey);
        /// <summary>
        /// 页面2无参数导航。
        /// </summary>
        /// <param name="pageKey"></param>
        /// <returns></returns>
        Task UserPageNavigationToAsync(string pageKey);
        /// <summary>
        /// 导航。
        /// </summary>
        /// <param name="pageKey">页面键。</param>
        /// <param name="parameter">参数。</param>
        Task NavigateToAsync(string pageKey, object parameter);
        /// <summary>
        /// 页面2带参数导航
        /// </summary>
        /// <param name="pageKey"></param>
        /// <param name="parameter"></param>
        /// <returns></returns>
        Task UserPageNavigationToAsync(string pageKey, object parameter);

        /// <summary>
        /// 向后带参导航。
        /// </summary>
        /// <param name="pageKet">页面键。</param>
        /// <param name="parameter">参数。</param>
        /// <returns></returns>
        Task NavigateBackAsync(string pageKet, object parameter);


        /// <summary>
        /// 导航到Syncfusion页面，不适用集中的缓存。
        /// </summary>
        /// <param name="parameter"></param>
        /// <returns></returns>
        Task NavigateToPunchViewPage(object parameter);
        Task NavigateToPunchPage(object parameter);
        Task NavigateToStorePunchesPage(object parameter);

        Task NavigateBack();
    }
}
